package op;

public class LigacaoDDD implements Comparable<LigacaoDDD> {

    private String ddd;
    private long tempoFixo;
    private long tempoCel;
    private double custoFixo;
    private double custoCel;
    private int qtdeFixo;
    private int qtdeCel;

    public LigacaoDDD(String ddd) {
        this.ddd = ddd;
        tempoFixo = 0;
        tempoCel = 0;
        custoFixo = 0.0;
        custoCel = 0.0;
        qtdeFixo = 0;
        qtdeCel = 0;
    }

    public void addLig(LigacaoResumida lig) {

        if (lig.getDestino().isDiferente()) {
            return;
        }

        char num1 = lig.getDestino().getNumParte1().charAt(0);

        if (num1 == '6' || num1 == '7' || num1 == '8' || num1 == '9') {
            tempoCel += EntradaAbstrata.getDuracaoLigacaoSegundos(lig.getTempoEmHoras()).longValue();
            custoCel += lig.getValorTotal();
            qtdeCel += lig.getNumLigacoes();
        } else {
            tempoFixo += EntradaAbstrata.getDuracaoLigacaoSegundos(lig.getTempoEmHoras()).longValue();
            custoFixo += lig.getValorTotal();
            qtdeFixo += lig.getNumLigacoes();
        }

    }

    public int getQtdeCel() {
        return qtdeCel;
    }

    public int getQtdeFixo() {
        return qtdeFixo;
    }

    public double getCustoCel() {
        return custoCel;
    }

    public void setCustoCel(double custoCel) {
        this.custoCel = custoCel;
    }

    public double getCustoFixo() {
        return custoFixo;
    }

    public String getDdd() {
        return ddd;
    }

    public void setDdd(String ddd) {
        this.ddd = ddd;
    }

    public long getTempoCel() {
        return tempoCel;
    }

    public long getTempoFixo() {
        return tempoFixo;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final LigacaoDDD other = (LigacaoDDD) obj;
        if ((this.ddd == null) ? (other.ddd != null) : !this.ddd.equals(other.ddd)) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 61 * hash + (this.ddd != null ? this.ddd.hashCode() : 0);
        return hash;
    }

    public int compareTo(LigacaoDDD o) {
        return ddd.compareTo(o.ddd);
    }
}
